package controlador;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import modelo.*;
import vista.VentanaConsultarDisponibilidadProductosTabla;
import vista.VentanaDetallePedidoModeloTabla;
import vista.VentanaListadoProductosPorDeposito;
import vista.VentanaTablaDeposito;


public class ControladorListadoProductosPorDeposito implements ActionListener {

	private VentanaListadoProductosPorDeposito ventanaDeposito;
	private FacturaCompra factura;
	private Drogueria drogueria;
	private Deposito deposito;

	public ControladorListadoProductosPorDeposito(Drogueria drogueria) {
		super();
		ventanaDeposito = new VentanaListadoProductosPorDeposito();
		ventanaDeposito.setLocationRelativeTo(null);
		ventanaDeposito.setVisible(true);
		ventanaDeposito.agregarListener(this);
		this.drogueria = drogueria;
		this.factura = factura;
		ventanaDeposito.setDepositosComboBox(drogueria.getNombreDepositosComboBox());

	}


	/*******************Metodo que crea un listado de todos los productos por desposito***************/



	public ArrayList<Lote> cargarListado()
	{
		ArrayList<Lote> lotes = new ArrayList<>();
		int pos = drogueria.buscarDeposito(ventanaDeposito.getCmbDepositoString());
		for (int j = 0; j <drogueria.getDeposito(pos).cantPaletas(); j++) {
			{
				if  (drogueria.getDeposito(pos).getPaleta(j).cantLotes()> 0){
					ArrayList<Lote> lote =drogueria.getDeposito(pos).getPaleta(j).getLotes(); 
					lotes.addAll(lote);	  

				}

			}
		}
		return lotes;
	}



	/******************************************/

	public ArrayList<Lote> cargarListadoEstantes()
	{
		ArrayList<Lote> lotes = new ArrayList<>();
		int pos = drogueria.buscarDeposito(ventanaDeposito.getCmbDepositoString());
		for (int j = 0; j <drogueria.getDeposito(pos).cantEstantes(); j++) {
			{
				if  (drogueria.getDeposito(pos).getEstante(j).cantLotes()> 0){
					ArrayList<Lote> lote =drogueria.getDeposito(pos).getEstante(j).getLotes(); 
					lotes.addAll(lote);	  

				}

			}
		}
		return lotes;
	}


	/************Mostramos los productos en la tabla*******************/
	public void listadoProductos(){
		ventanaDeposito.setListado(new VentanaTablaDeposito(cargarListadoEstantes()));
	}


	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand().equalsIgnoreCase("Generar")){ 
			listadoProductos();
		}


	}
}
